using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models;
using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models.Attributes;
using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models.Attributes.DomainAttributes;
using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models.Enums;
using System.Collections.Generic;
using System.ComponentModel;

namespace Baci.ArcGIS._DataManagementTools._ContingentValues
{
    /// <summary>
    /// <para>Remove Contingent Value</para>
    /// <para>Removes a contingent value from a field group.</para>
    /// <para>从字段组中删除条件值。</para>
    /// </summary>    
    [DisplayName("Remove Contingent Value")]
    public class RemoveContingentValue : AbstractGPProcess
    {
        /// <summary>
        /// 无参构造
        /// </summary>
        public RemoveContingentValue()
        {

        }

        /// <summary>
        /// 有参构造
        /// </summary>
        /// <param name="_target_table">
        /// <para>Target Table</para>
        /// <para>The input geodatabase feature class or table containing the contingent value that will be removed.</para>
        /// <para>输入地理数据库要素类或表，其中包含将要移除的条件值。</para>
        /// </param>
        /// <param name="_id">
        /// <para>Contingent Value ID</para>
        /// <para><xdoc>
        ///   <para>The unique contingent value ID.</para>
        ///   <para>To view the contingent value ID in the Contingent Values view, click the Toggle Value IDs button on the ribbon. In Python, this value can be accessed using the arcpy.da.ListContingentValues function.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>唯一条件值 ID。</para>
        ///   <para>若要在“条件值”视图中查看条件值 ID，请单击功能区上的“切换值 ID”按钮。在 Python 中，可以使用 arcpy.da.ListContingentValues 函数访问此值。</para>
        /// </xdoc></para>
        /// </param>
        public RemoveContingentValue(object _target_table, object _id)
        {
            this._target_table = _target_table;
            this._id = _id;
        }
        public override string ToolboxName => "Data Management Tools";

        public override string ToolName => "Remove Contingent Value";

        public override string CallName => "management.RemoveContingentValue";

        public override List<string> AcceptEnvironments => ["workspace"];

        public override object[] ParameterInfo => [_target_table, _id, _out_table];

        /// <summary>
        /// <para>Target Table</para>
        /// <para>The input geodatabase feature class or table containing the contingent value that will be removed.</para>
        /// <para>输入地理数据库要素类或表，其中包含将要移除的条件值。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Target Table")]
        [Description("")]
        [Option(OptionTypeEnum.Must)]
        public object _target_table { get; set; }


        /// <summary>
        /// <para>Contingent Value ID</para>
        /// <para><xdoc>
        ///   <para>The unique contingent value ID.</para>
        ///   <para>To view the contingent value ID in the Contingent Values view, click the Toggle Value IDs button on the ribbon. In Python, this value can be accessed using the arcpy.da.ListContingentValues function.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>唯一条件值 ID。</para>
        ///   <para>若要在“条件值”视图中查看条件值 ID，请单击功能区上的“切换值 ID”按钮。在 Python 中，可以使用 arcpy.da.ListContingentValues 函数访问此值。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Contingent Value ID")]
        [Description("")]
        [Option(OptionTypeEnum.Must)]
        public object _id { get; set; }


        /// <summary>
        /// <para>Updated Feature Class</para>
        /// <para></para>
        /// <para></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Updated Feature Class")]
        [Description("")]
        [Option(OptionTypeEnum.derived)]
        public object _out_table { get; set; }


        public RemoveContingentValue SetEnv(object workspace = null)
        {
            base.SetEnv(workspace: workspace);
            return this;
        }

    }

}